//package com.study.hadoop;
//
//
//import org.apache.commons.collections.CollectionUtils;
//import org.apache.commons.lang3.StringUtils;
//import org.apache.hadoop.conf.Configuration;
//import org.apache.hadoop.hbase.Cell;
//import org.apache.hadoop.hbase.CellUtil;
//import org.apache.hadoop.hbase.HBaseConfiguration;
//import org.apache.hadoop.hbase.TableName;
//import org.apache.hadoop.hbase.client.*;
//import org.apache.hadoop.hbase.filter.Filter;
//import org.apache.hadoop.hbase.filter.RowFilter;
//import org.apache.hadoop.hbase.util.Bytes;
//import org.junit.After;
//import org.junit.Before;
//import org.junit.Test;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//
//import java.io.IOException;
//import java.util.*;
//
//public class HbaseOper {
//
//    private static final Logger LOGGER = LoggerFactory.getLogger(HbaseOper.class);
//
//    static Configuration config = null;
//    private Connection connection = null;
//    private Table table = null;
//
//    @Before
//    public void init() throws IOException {
//        config = HBaseConfiguration.create();
//        config.set("hbase.zookeeper.quorum", "127.0.0.1");
//        config.set("hbase.zookeeper.property.clientPort", "2181");
//        connection = ConnectionFactory.createConnection(config);
//        table = connection.getTable(TableName.valueOf("t1"));
//    }
//
//    /**
//     * @throws IOException
//     */
//    @Test
//    public void testCreateTable() throws Exception {
//        Admin admin = null;
//        try {
//            String[] columnFamilies = {"info", "subDept"};
////            admin = connection.getAdmin();
//            TableName tableName = TableName.valueOf("dept1"); // 表名称
//            if (false) {
//                LOGGER.warn("table:{} exists!", tableName.getName());
//            } else {
//                TableDescriptorBuilder builder = TableDescriptorBuilder.newBuilder(tableName);
//                for (String columnFamily : columnFamilies) {
//                    builder.setColumnFamily(ColumnFamilyDescriptorBuilder.of(columnFamily));
//                }
//
//                admin.createTable(builder.build());
//                LOGGER.info("create table:{} success!", tableName.getName());
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        } finally {
//            if (admin != null) {
//                admin.close();
//            }
//        }
//    }
//
//    @Test
//    public void insertData() throws IOException {
//        List<Put> putList = new ArrayList<>(10000);
//        for (int i = 0; i < 10000; i++) {
//            Put put = new Put(Bytes.toBytes("0_" + String.valueOf(i)));
//            put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("capDate"), Bytes.toBytes(new Date().getTime()));
//            put.addColumn(Bytes.toBytes("info"), Bytes.toBytes("id2"), Bytes.toBytes("002"));
//            putList.add(put);
//            table.put(putList);
//        }
//        System.out.println("insert success！");
//
//    }
//
//    @Test
//    public void getCell() throws IOException {
//        Get get = new Get(Bytes.toBytes("0_1"));
//        get.addColumn(Bytes.toBytes("info"), Bytes.toBytes("id"));
//
//        Result result = table.get(get);
//        List<Cell> cells = result.listCells();
//
//        if (CollectionUtils.isEmpty(cells)) {
//            System.out.println("日志空");
//        }
//        String value = new String(CellUtil.cloneValue(cells.get(0)), "UTF-8");
//        System.out.println("日志空{}" + value);
//    }
//
//    @Test
//    public void getRow() throws IOException {
//        Get get = new Get(Bytes.toBytes("0_1"));
//
//        Result result = table.get(get);
//        List<Cell> cells = result.listCells();
//
//        if (CollectionUtils.isEmpty(cells)) {
//            System.out.println("kong");
//        }
//        Map<String, String> objectMap = new HashMap<>();
//        for (Cell cell : cells) {
//            String qualifier = new String(CellUtil.cloneQualifier(cell));
//            String value = new String(CellUtil.cloneValue(cell), "UTF-8");
//            objectMap.put(qualifier, value);
//        }
//        System.out.println("获取到的结果是：" + objectMap);
//    }
//
//    @Test
//    public void scan() throws IOException {
//
//            ResultScanner rs = null;
//            try {
//                Scan scan = new Scan();
////                if (!StringUtils.isEmpty("rowkeyStart")) {
////                    scan.withStartRow(Bytes.toBytes("0_11"));
////                }
////                if (!StringUtils.isEmpty("rowkeyEnd")) {
////                    scan.withStopRow(Bytes.toBytes("0_22"));
////                }
////                scan.setFilter(new RowKeyFilter(1,2));
//                scan.withStartRow(Bytes.toBytes("0_1111-"));
//                scan.withStopRow(Bytes.toBytes("0_1122-"));
//                rs = table.getScanner(scan);
//
//                List<Map<String, String>> dataList = new ArrayList<>();
//                for (Result r : rs) {
//                    Map<String, String> objectMap = new HashMap<>();
//                    System.out.println(new String(r.getRow()));
//                    List<Cell> cells = r.listCells();
//                    for (Cell cell : cells) {
//                        String qualifier = new String(CellUtil.cloneQualifier(cell));
//                        System.out.println(cell);
//                        String value = new String(CellUtil.cloneValue(cell), "UTF-8");
//                        objectMap.put(qualifier, value);
//                    }
//                    dataList.add(objectMap);
//                }
//                System.out.println("获取的结果是:" + dataList);
//            } finally {
//                if (rs != null) {
//                    rs.close();
//                }
//            }
//
//    }
//
//    @After
//    public void destroy() throws IOException {
//        if (table != null) {
//            table.close();
//        }
//
//        if (connection != null) {
//            connection.close();
//        }
//    }
//
//
//}
